from sid	;45
lda #uservic	;2
sta cia2pa	;4
bit ea		;3
nop		;2
bit ea		;3
nop		;2
nop		;2

	main = 36
lda cia2pa	;4
lsr		;2
lsr		;2
nop		;2
ora cia2pa	;4
lsr		;2
lsr		;2
eor fxr		;3
eor cia2pa	;4
lsr		;2
lsr		;2
eor fxr		;3
eor cia2pa	;4

rand(0..6)	;[46n|44p->42p...no bang]
	;header (27 = 23+4)
int		;7 [46 ~ 52]
sta sAz		;3 [53 ~ 59]
asl curbits	;5 [56 ~ 62]
lda #255	;2 [61 ~ 2]
adc #0		;2 [63 ~ 4]
sta pwhi	;4 [0 ~ 6]
 ;region bad line can start (14)
bit cia1	;4 [4~ 10] (time in header)
bit cia2	;4 [8 ~ 14 + 43]
bvc nDat	;2 {18}
bpl nDat	;2 {20}
lda #uv+data	;2 {22}
sta cia2	;4 {24}
 ;load / no bad line now (60+1)
lda #<pbit2	;2 [~2]{26}
sta $fffe	;4 [~4]{28}
lda #uv		;2 [~8]{32}
sta cia2	;4  [~10]{36}
main (36)	;36 [~14]{40}
sta mem		;4|3 [~50]{76->11|13...BANG!}
lda sAz		;3 [~54]
rti		;6 [51~57]
 ;total = 102|101

nDat: (20)
asl|inc bc	;5
lda #<pbit2	;2
sta $fffe	;4
lda sAz		;3
rti		;6
 ;total = 54 [56]

-----
header 		;27
 ;advancerA (16)
lda bc		;3
cmp #80		;2
bcc nxt		;2
inc pmem	;6
bne nxt		;3
inc pmem+1	;...
inc p2+1	;...
 ;advancerB (28)
lsr		;2
bcc finish	;2
lda pmem	;4
sta pm2		;4
lda sz		;3
sta m2		;4
inc pmem	;6
bne nxt		;3

 ;finish (20)
lda #$80	;2
sta bc		;3
lda #<pbit0	;2
sta $fffe	;4
lda sAz		;3
rti		;6
 ;total = 91 [+ 11]

-----
header 		;27
sty svy		;4
ldy #nn		;2
 ;advancerA (21)
lsr bc		;5
beq nxt		;2
lda s1		;3
sta (m),y	;6
iny		;2
bne nxt		;3
 ;fixer v1 (12 or 16)
inc pmem+1	;[5-1]
lda pmem+1	;3
eor #max	;2
bne nxt		;3
lda #max	;[2-1]
sta pmem+1	;3
 ;advancerB (16)
bcs finish	;2
lda s2		;3
sta (m),y	;6
iny		;2
bne nxt		;3
 ;finish (26)
sty ndx		;4
ldy #nn		;2
lda #$80	;2
sta bc		;3
lda #<pbit0	;2
sta $fffe	;4
lda sAz		;3
rti		;6
 ;total = 96 [+ 12 or 16] max 112

*********
header		;27
 ;set vol (15)
lda mem		;4
sta bits	;3
and #f		;2
ora #lp		;2
sta volfilt	;4
 ;adv sound (18+5)
inc fetch+1	;6
bne ninc	;3
inc fetch+2	;[6-1]
lda fetch+1	;4
cmp #<send	;2
bne fin		;3
 ;chk2 (9-1)
lda fetch+2	;4
cmp #>send	;2
bne fin		;3
 ;reset (12-1)
lda #<start	;2
sta fetch+1	;4
lda #>start	;2
sta fetch+2	;4
 ;fin (15)
lda #<pbit1	;2
sta $fffe	;4
lda savA	;3
rti		;6
 ;total = 75 [+ 5 + 8 + 11]

===========================
in-screen 2MHz
NTSC:
7x {
	1+2*18
	2+3*13
	= 78 bytes
}
1x {
	1+2*17
	2+3*14
	= 79 bytes
}
avg 78.125 bytes / frame
4687.5 bytes / second BEST CASE

PAL:
???


===========================
Fast Serial
3 bytes each slow IRQ set (50% more than JiffyDOS)
4 bytes each fast IRQ set (33% more than JiffyDOS)

24+55+29+00 = 108 free 1MHz cycles per slow IRQ set
24+55+29+00 = 108 free (no audio)

21+46+32+00 = 99 free (with audio)
24+46+31+00 = 101 free (with audio)

72+57+72+72 = 273 free 1MHz cycles per fast IRQ set
75+55+75+75 = 280 free (no audio)

74+55+73+73 = 275 free (with audio)
74+54+73+74 = 275 free (with audio)


fpBit0 (new samp, detect trans)
******
fpBit1 (norm)
------
fpBit2 (norm)
------
fpBit3 (new frame)
------
fpBit0 (go 1mhz)
******
pBit1T (set delay until 2MHz)

==============================

082 -> fp0
090 -> p0
...
218 -> p0
225 -> fp0 (NTSC)
...
050 -> fp0
...
074 -> fp0
082 -> fp0 (prepare)
090 -> p0
...
218 -> p0
225 -> fp0 (NTSC)

====================
slow volume 	cyc. 25~30
slow bit0	cyc. 38~43
slow bitX	cyc. 23~28
vic BG		cyc. 53~58
slow VIC fast	cyc. 54

fast volume	cyc. 23~25
fast bit0	cyc. 27~29
fast bitX	cyc. 13~17
fast VIC bm	cyc. 57~60
fast VIC slow	cyc. 3~6
===================
approx 15*4+17*3=111 bytes/field = 6660 bytes/sec NTSC

but it no worky on C1581... 6000 bps *almost* works on uIEC
5750 bps *almost* works on C1581
5500 bps works on C1581

could be loader blocked for 1 full screen...

Double IRQ idea:
1MHz, single IRQ
pbit1: (194)
pbit2: (196)
pbit3: (198)
pbit0: (200)
    dec bDly
    beq 2MHz, dbl.IRQ
fbit1B: (202)
    if NTSC, next = fpBit2; if decompress, single IRQ
    if PAL next = dum1B
dum1B:  (x|203)
    if decompress, single IRQ
fpBit2: (203|204)
dummy2: 
fpBit3: (205|206)
dummy3:
fpBit0: (207|208)
dummy0:
fpBit1: (209|210)
dummy1:
============
;irq / save A [10]
lda dc0d	[4|5]
ora c3po	[3]
and #8		[2]
ora chkA	[4]
sta c3po	[3]
cmp #BNE|8	[2]
lda #0		[2]
bcc noTog	[3|4]
lda #$10
noTog:
eor dd00	[4|5]
sta dd00	[4]
		[31~34+10]
===============
lda #x
jmp x
sta $fffe
	[9]*3 = 27
------------
lda #3	;2 [5]
sta c	;3
dec c	;5 [7]*3+1=22
beq x	;2
lda #x	; [6]
sta $fffe
	[33] bad idea
==============
jmp x	;3
beq lp	;2|3
lda #$10;2
	;[7|6]
beq jlp	;2
jmp tog	;3
jmp lp	;4
	;[5|6] good idea (but only 1/4 IRQs)

